let modal = weex.requireModule('modal')

export function toast(message, duration = 0.1) {
    modal.toast({
        message,
        duration
    })
}

//定义compare函数，参数name是对象的某一个属性，比如age、salary
//返回一个可以用来对包含该成员的对象数组进行排序的比较函数
export function singleCompare(name) {
    return function (o, p) {
        let a, b;
        if (typeof o === "object" && typeof p === "object" && o && p) {
            a = o[name];
            b = p[name];
            if (a === b) {
                return 0;
            }
            if (typeof a === typeof b) {
                return a < b ? -1 : 1;
            }
            return typeof a < typeof b ? -1 : 1;
        } else {
            throw ("error");
        }
    }
}

//多属性比较函数
//定义compare函数，name是对象的某一个属性，fun是一个比较函数
export function multiCompare(name, fun) {
    return function (o, p) {
        let a, b;
        if (o && p && typeof o === 'object' && typeof p === 'object') {
            a = o[name];
            b = p[name];
            //当o[name] 和 p[name] 相等时，利用fun函数根据另一个属性来进行比较
            if (a === b) {
                return typeof fun === 'function' ? fun(o, p) : 0;
            }
            if (typeof a === typeof b) {
                return a < b ? -1 : 1;
            }
            return typeof a < typeof b ? -1 : 1;
        } else {
            throw("error");
        }
    }
}

//比较两个键是否相等
export function compareKey(target, target2) {
    return target.xValue === target2.xValue && target.yValue === target2.yValue;
}

//深拷贝对象
export function deepCopyProperties(target) {
    return JSON.parse(JSON.stringify(target));
}

//是否有空对象
export function hasEmpty(...args) {
    if (!args || args.length < 1) return true;
    for (let arg of args) {
        if (!arg) {
            return true;
        }
    }
}

//获取屏幕高度
export function getDeviceHeight(scale = 1) {
    return ~~(((750 / weex.config.env.deviceWidth) * weex.config.env.deviceHeight) * scale)
}

//根据px值获取真实屏幕高度自适应值
export function getFormatHeightPX(px) {
    return ~~getDeviceHeight(px/1460)
}
